﻿using System;
using System.Web.UI.WebControls;
using Z16.BLI;
using System.Data;

namespace Z16.SITE
{
    public partial class ListarUsuario : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if ((Session["CodPerfil"] == null) || (Session["CodUsr"] == null))
                {
                    Response.Write("<script>window.location=\'Login.aspx';</script>");
                    return;
                }

                CarregarUsuarios(null, null, null);
                carregarPerfil();
            }
        }

        private DataTable CarregarUsuarios(int? codcc,string nome, int? codPerf)
        {
            Usuario u = new Usuario();
            DataTable tabela = null;

            try
            {
                tabela = u.ListarUsuarios(codcc,nome,codPerf);
                GridView1.DataSource = tabela;
                GridView1.DataBind();
            }
            catch (Exception ee)
            {
                lblMensagem.Text = ee.Message;
            }
            finally
            {
                u = null;
            }
            return tabela;
        }

        protected void ExcluirUsuario(object sender, GridViewDeleteEventArgs e)
        {
            int UsuarioID = Int32.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString());

            Usuario u = new Usuario();
            try
            {
                u.ExcluirUsuario(UsuarioID);

                lblMensagem.Text = "Registro deletado com sucesso.";
                GridView1.DataSource = u.ListarUsuarios(null,null,null);
                GridView1.DataBind();
            }
            catch (Exception ee)
            {
                lblMensagem.Text = ee.Message;
            }
        }

        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            var codPerf = 0;
            if (ddlPerfil.SelectedValue != "Selecione")
                codPerf = int.Parse(ddlPerfil.SelectedValue);
            try
            {
                CarregarUsuarios(null, txtUsuario.Text, codPerf);
            }
            catch (Exception ee)
            {
                lblMensagem.Text = ee.Message;
            }
        }

        private void carregarPerfil()
        {
            Usuario usuario = new Usuario();

            ddlPerfil.Items.Clear();
            ddlPerfil.AppendDataBoundItems = true;
            ddlPerfil.Items.Insert(0, "Selecione");

            ddlPerfil.DataSource = usuario.listarPerfil();
            ddlPerfil.DataValueField = "intCodPerfil";
            ddlPerfil.DataTextField = "strNomePerfil";
            ddlPerfil.DataBind();
        }
    }
}